package com.donquijote.proxy.subgroup;

import java.lang.annotation.Target;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;

/**
 * @author 421527548@qq.com
 * @version V1.0
 * @title
 * @description
 * @date 2022-11-28 11:15
 */
public class TimeInvocationHandler implements InvocationHandler {

    private Object target;

    public TimeInvocationHandler(Object target) {
        this.target = target;
    }
    @Override
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {

        long start = System.currentTimeMillis();
        /**
         * method ： 方法
         * target： 对象
         * args： 参数
         * reValue： 返回值
         * */
        Object reValue = method.invoke(target, args);
        long end = System.currentTimeMillis();
        System.out.println("\n 用时"+(end - start)+"ms");
        return reValue;
    }
}
